#ifndef SDK_OHOS_OHOS_RTP_TRANSCEIVER_INIT_H_
#define SDK_OHOS_OHOS_RTP_TRANSCEIVER_INIT_H_

#include <string>
#include "api/ohos_rtp_transceiver_init_interface.h"
#include "api/rtp_transceiver_interface.h"

namespace ohoswebrtc {

class OHOSRtpTransceiverInit : public OHOSRtpTransceiverInitInterface {
  public:
    OHOSRtpTransceiverInit(webrtc::RtpTransceiverInit rtpTransceiverInit);
    OHOSRtpTransceiverInit(webrtc::RtpTransceiverDirection direction, const std::vector<std::string> &stream_ids,
      const std::vector<webrtc::RtpEncodingParameters *> &send_encodings);
    virtual ~OHOSRtpTransceiverInit();

    /** Direction of the RtpTransceiver. See RtpTransceiver.direction. */
    webrtc::RtpTransceiverDirection direction() override {
      return rtp_transceiver_init_.direction;
    }

    void set_direction(webrtc::RtpTransceiverDirection value) override {
      rtp_transceiver_init_.direction = value;
    }

    /** The added RtpTransceiver will be added to these streams. */
    const std::vector<std::string> stream_ids() override {
      return rtp_transceiver_init_.stream_ids;
    }

    const std::vector<webrtc::RtpEncodingParameters> send_encodings() override {
      return rtp_transceiver_init_.send_encodings;
    }
    
    /** native RtpTransceiverInit */
    webrtc::RtpTransceiverInit rtp_transceiver_init() {
      return rtp_transceiver_init_;
    }

  private:
    webrtc::RtpTransceiverInit rtp_transceiver_init_;
};

}

#endif